<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title></title>
    <!--引入Vue-->
    <script type="text/javascript" src="./js/vue.js"></script>
    <!--时间格式化js-->
    <script type="text/javascript" src="./js/dayjs.min.js"></script>
</head>

<body>

    <!--day.js是时间格式化的库,用法:
dayjs()
  .startOf('month')
  .add(1, 'day')
  .set('year', 2018)
  .format('YYYY-MM-DD HH:mm:ss')

  过滤器:对要显示的数据进行特定格式化后在显示，
  语法:1.注册过滤器，全局配置过滤器：Vue.filter(name,callback)或局部:new Vue(filters:{})
       2.使用过滤器:{{XXX | 过滤器名}} 
注:1.过滤器可以接受外面的参数，多个过滤器也可以穿联
   2.并没有改变原来的数据，是产生新的对应的数据

-->
    <div id="root">

        <bUtton @click="deta()">方法实现获取时间戳</bUtton>
        <h2>时间戳:{{newjs}}</h2>
        <h2>转化的时间:{{znewD}}</h2>

        <h2>计算属性实现转化的时间:{{new_data}}</h2>

        <!--过滤器实现
        1.首先Date.now() 作为参数传给timest()函数，
        timest()的返回值被vm拿到，来重新渲染h3里面的数据
        timest的返回值就是转换的格式
        -->
        <h3>{{Date.now() | timest}}</h3>
        <!--如果timest()传入了参数比如: Date.now() | timest("YYYY-MM-DD")
        如果timest没有传参数，默认管道符 | 前面的数就是参数，
        如果timest传递了一个参数n，timest(n),那么实际是timest(Date.now(),n) //管道符前面的参数永远默认在第一个，
        所以在filters接收时，的设置两个形参timest(value，n)，第一个value默认是管道符前的那个数
        -->
        <h3>{{Date.now() | timest("YYYY-MM-DD")}}</h3>

        <!--双层过滤器 把前面过滤的截取成4位-->
        <h3>{{Date.now() | timest("YYYY-MM-DD") | myslice}}</h3>

    </div>
</body>
<script>
    //全局过滤器适合全部的Vue实例使用
    // Vue.filters('myslice', function() {
    //     return value.slice(0, 4)
    // })

    const vm = new Vue({
        el: '#root',
        data: {
            newjs: "",
            znewD: ""

        },
        //methods实现
        methods: {
            deta() {
                this.newjs = Date.now()
                this.znewD = dayjs(this.newjs).format('YYYY-MM-DD HH:mm:ss')
                debugger;
            },

        },
        //计算属性实现
        computed: {
            new_data: {
                get() {
                    this.newjs = Date.now()
                    return dayjs(this.newjs).format('YYYY-MM-DD HH:mm:ss')
                }

            }

        },

        //局部的过滤器，是合适当前的vue 实例
        //过滤器实现
        filters: {
            //Date.now()作为timest的参数被传递进来
            // timest的返回值就是转换的格式
            timest(value) {
                console.log(value) //Date.now()
                return dayjs(value).format('YYYY-MM-DD HH:mm:ss')
            },

            //timest传入的参数用b接收，第一个接收管道符前面的数不变
            timest(value, b) {
                console.log(value) //Date.now()
                return dayjs(value).format(b)
            },

            //双层过滤器 ,把前面过滤的截取成4位
            myslice(value) {
                return value.slice(0, 4)
            }
        }

    });
</script>

</html>